IExDataExchanger Struct Reference
[COM Interfaces]

Inheritance diagram for IExDataExchanger:

IMCUnknown I3DExRendererBox TBasicDataExchanger TBasicRendererBox TBasic3DExportFilter TBasic3DImportFilter TBasicAmbient TBasicAnimationMethod TBasicAtmosphere TBasicBackdrop TBasicBackground TBasicCamera TBasicColorPicker TBasicColorSet TBasicConstraint TBasicDataComponent TBasicFinalRenderer TBasicGel TBasicGenericData TBasicLight TBasicModifier TBasicModule TBasicMovie TBasicPostRenderer TBasicPrefsComponent TBasicPrimitive TBasicRendererBox TBasicRenderFeature TBasicSceneCommand TBasicShader TBasicTerrainFilter TBasicTweener TBasicVolumetricCloudsShape TBasicVolumetricEffect List of all members.

Public Member Functions

virtual void MCCOMAPI Clone (IExDataExchanger **clonedObject, IMCUnknown *pUnkOuter)=0
virtual boolean MCCOMAPI IsEqual (IExDataExchanger *otherDataExchanger)=0
virtual MCCOMErr MCCOMAPI GetParameter (IDType keyword, void *parameter)=0
virtual MCCOMErr MCCOMAPI SetParameter (IDType keyword, void *parameter)=0
virtual void *MCCOMAPI GetExtensionDataBuffer ()=0
virtual MCCOMErr MCCOMAPI ExtensionDataChanged ()=0
virtual MCCOMErr MCCOMAPI HandleEvent (MessageID message, IMFResponder *source, void *data)=0
virtual int16 MCCOMAPI GetResID ()=0
virtual MCCOMErr MCCOMAPI InitComponent ()=0
virtual MCCOMErr MCCOMAPI CopyComponentExtraData (IExDataExchanger *dest)=0

Detailed Description

Contains utility methods that are complements to IMCUnknown, like clone() Allows the Shell to handle the UI of the Component and the Component's public data. Handles the communication between the Component and the Shell.


Member Function Documentation

virtual void MCCOMAPI IExDataExchanger::Clone (  IExDataExchanger **  clonedObject,
IMCUnknown *  pUnkOuter
)  [pure virtual]
 

Creates a copy of an external component. You only need to implement this method if your object has data that are not stored in its Parameter Map (Pmap).

Parameters:
clonedObject : the resulting copy of the current object
pUnkOuter : the internal component that needs to be linked to your object (call SetControllingUnknown(pUnkOuter) on the clone)

Implemented in TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::CopyComponentExtraData (  IExDataExchanger *  dest  )  [pure virtual]
 

Some components can contain data that aren't part of its pMap but need to copy during the Undo/Redo action for example. Implement this method to copy these "outside the pmap" data. Typicaly, it should copy the extra data that are cloned in the Clone method implementation.

Parameters:
dest The component where the date should be copied.

Implemented in TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::ExtensionDataChanged (   )  [pure virtual]
 

Called each time a parameter of the parameter map (Pmap) is modified. This should only be used to invalidate caches and should be quick since it can be called many times.

Implemented in TBasicDistantLight, TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual void* MCCOMAPI IExDataExchanger::GetExtensionDataBuffer (   )  [pure virtual]
 

Returns a pointer to the buffer that contains the parameter map (Pmap). This function should always be implemented by your component otherwise the base address of the object will be used as the address of the Pmap.

Implemented in TBasicModifier, TBasicModule, TBasicPrimitive, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::GetParameter (  IDType  keyword,
void *  parameter
)  [pure virtual]
 

Returns the value of a given parameter of this dataExchanger. This function is called when the shell cannot find the given parameter in the Parameter Map (Pmap) of the component You need to implement this method only if your object has parameters that are not inside the parameter map.

Parameters:
keyword The ID of the parameter.
parameter A pointer to buffer where the value of the parameter can be copied.

Implemented in TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual int16 MCCOMAPI IExDataExchanger::GetResID (   )  [pure virtual]
 

Returns the resource ID of the NodePart used for the properties of the component.
Return 0 to use the default node id (the same number than the one used for the 'COMP' resource). This is the default.
Return -1 if you want an auto pmap (very rarely needed)

Implemented in TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::HandleEvent (  MessageID  message,
IMFResponder *  source,
void *  data
)  [pure virtual]
 

Usually called when the user modify something in the component user interface. Allows the component to react to a user action such as pressing a button.

Parameters:
message,: the ID of the message being sent (All MessageIDs are preceeded with "kMsg")
source,: the part that sent the message
data,: a pointer to private data corresponding to the message

Implemented in TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::InitComponent (   )  [pure virtual]
 

Set the data of a component to their default value Returns kNotImplementedError if not implemented, MC_S_OK otherwise.

Implemented in TBasicRendererBox, and TBasicDataExchanger.

virtual boolean MCCOMAPI IExDataExchanger::IsEqual (  IExDataExchanger *  otherDataExchanger  )  [pure virtual]
 

Returns true if the two pointers are referring to the same data exchanger. When IsEqual is called you can assume that otherDataExchanger is of the same type as "this"

Parameters:
otherDataExchanger the extension to which it will be compared

Implemented in TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::SetParameter (  IDType  keyword,
void *  parameter
)  [pure virtual]
 

Sets the value of a parameter. You need to implement this method only if your object has parameters that are not inside the parameter map.

Parameters:
keyword The ID of the parameter.
parameter A pointer to buffer where the value of the parameter can be copied.

Implemented in TBasicModule, TBasicRendererBox, and TBasicDataExchanger.


The documentation for this struct was generated from the following file:
Generated on Wed Dec 7 14:27:36 2005 for Carrara SDK Doc by  doxygen 1.4.5